﻿#pragma once

#include "Layer.h"
#include "Core.h"
#include"Events/KeyEvents.h"
#include"imgui/imgui.h"
#include"Renderer/Buffer.h"
#include"Renderer/GraphicsContext.h"
#include"Renderer/Shader.h"
#include"Renderer/OrthographicCamera.h"
#include"Renderer/Renderer.h"
#include"Renderer/VertexArray.h"
#include"Renderer/RendererAPI.h"

class ExampleLayer : public ArsEngine::Layer
{
public:
	ExampleLayer();

	void OnUpdate(ArsEngine::TimeStep ts) override;

	void OnEvent(ArsEngine::Event& event) override;
	void OnImGuiRender() override;
	bool OnKeyPressedEvent(ArsEngine::KeyPressedEvent& event);
	private:
		std::shared_ptr<ArsEngine::Shader> m_Shader;
		std::shared_ptr<ArsEngine::VertexBuffer> m_VertexBuffer;
		std::shared_ptr<ArsEngine::IndexBuffer> m_IndexBuffer;
		std::shared_ptr<ArsEngine::VertexArray> m_VertexArray;

		ArsEngine::OrthographicCamera m_Camera;

		glm::vec3 m_CameraPosition = { 0.0f, 0.0f, 0.0f };
		float m_CameraSpeed = 0.1f;
};
